#include <REGX52.H>
#include "Delay.h"

unsigned char MatrixKey(){
	
	unsigned char KeyNumber = 0;
	
	P1 = 0xFF;
	P1_3 = 0;
	if(P1_7 == 0){
		Delay(20);
		// 检测松手
		while(P1_7 != 1);
		Delay(20);
		KeyNumber = 1;
	}
	if(P1_6 == 0){
		Delay(20);
		// 检测松手
		while(P1_6 != 1);
		Delay(20);
		KeyNumber = 5;
	}
	if(P1_5 == 0){
		Delay(20);
		// 检测松手
		while(P1_5 != 1);
		Delay(20);
		KeyNumber = 9;
	}
	if(P1_4 == 0){
		Delay(20);
		// 检测松手
		while(P1_4 != 1);
		Delay(20);
		KeyNumber = 13;
	}
	P1 = 0xFF;
	P1_2 = 0;
	if(P1_7 == 0){
		Delay(20);
		// 检测松手
		while(P1_7 != 1);
		Delay(20);
		KeyNumber = 2;
	}
	if(P1_6 == 0){
		Delay(20);
		// 检测松手
		while(P1_6 != 1);
		Delay(20);
		KeyNumber = 6;
	}
	if(P1_5 == 0){
		Delay(20);
		// 检测松手
		while(P1_5 != 1);
		Delay(20);
		KeyNumber = 10;
	}
	if(P1_4 == 0){
		Delay(20);
		// 检测松手
		while(P1_4 != 1);
		Delay(20);
		KeyNumber = 14;
	}
	P1 = 0xFF;
	P1_1 = 0;
	if(P1_7 == 0){
		Delay(20);
		// 检测松手
		while(P1_7 != 1);
		Delay(20);
		KeyNumber = 3;
	}
	if(P1_6 == 0){
		Delay(20);
		// 检测松手
		while(P1_6 != 1);
		Delay(20);
		KeyNumber = 7;
	}
	if(P1_5 == 0){
		Delay(20);
		// 检测松手
		while(P1_5 != 1);
		Delay(20);
		KeyNumber = 11;
	}
	if(P1_4 == 0){
		Delay(20);
		// 检测松手
		while(P1_4 != 1);
		Delay(20);
		KeyNumber = 15;
	}
	P1 = 0xFF;
	P1_0 = 0;
	if(P1_7 == 0){
		Delay(20);
		// 检测松手
		while(P1_7 != 1);
		Delay(20);
		KeyNumber = 4;
	}
	if(P1_6 == 0){
		Delay(20);
		// 检测松手
		while(P1_6 != 1);
		Delay(20);
		KeyNumber = 8;
	}
	if(P1_5 == 0){
		Delay(20);
		// 检测松手
		while(P1_5 != 1);
		Delay(20);
		KeyNumber = 12;
	}
	if(P1_4 == 0){
		Delay(20);
		// 检测松手
		while(P1_4 != 1);
		Delay(20);
		KeyNumber = 16;
	}
	return KeyNumber;
}